﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;


namespace WindowsFormsApplication1
{
    public partial class main : Form
    {

        #region Variables
        
        SqlConnection con = new SqlConnection();
        private DataTable dt;

        public SqlDataAdapter adapter = null;
        
        public DataTable datatbl = new DataTable();
        private SqlCommandBuilder sqlCommandBuilder = null;
        private BindingSource bindingSource = null;
        public string selectquery = null;

        private int iRowIndex = 0;

        DataSet ds = new DataSet();
    
        #endregion


        public main()
        {
            InitializeComponent();
            

        }

        // Oeffnet Durch Klicken auf den Knopf  ConnectDBGolf die Datenbank GOLF //
        public void ButtonConnectDBGolf_Click(object sender, EventArgs e)
        {
            
            
            // Wenn keine Verbindung geoeffnet  wird sie hergestellt.
            if (con.State == ConnectionState.Closed)
            {
                //Connection String
                con.ConnectionString = ("Data Source=localhost\\SQLEXPRESS; Initial Catalog = golf; Integrated Security = false; User ID = sa; Password = 12345; Connect Timeout = 3");
            
                con.Open();


                // Select string für Combobox
                string selectort = string.Format("SELECT * FROM ort");
                adapter = new SqlDataAdapter(selectort, con);
                SqlCommandBuilder sqlbuilder = new SqlCommandBuilder(adapter);

              
                       
                
	            adapter.Fill(ds);
                cmbprivat.DataSource = ds.Tables[0]; //Combobox füllen
                cmbprivat.DisplayMember = "oName"; // Spalte X anzeigen

                //cmbgesch.DataSource = ds.Tables[0]; //Combobox füllen
                //cmbgesch.DisplayMember = "oName"; // Spalte X anzeigen

            }

            // Wenn die Verbindung geoeffnet oder geschlossen ist, Gib Verbindungsstatus aus. 
            if (con.State == ConnectionState.Open)
            {
                MessageBox.Show("Datenbankverbindung wurde hergestellt");
            }
            else
            {
                MessageBox.Show("Datenbankverbindung wurde geschlossen");
            }

        }

        //Schliesst die Datenbankverbindung Golf mit dem Knopf CloseDBGolf
        private void ButtonCloseDBGolf_Click(object sender, EventArgs e)
        {
            //Wenn keine Verbindung vorhanden Meldung keine vorhanden sonst schliessen + Meldung.
            if (con.State == ConnectionState.Closed)
            {
                MessageBox.Show("Keine Datenbankverbindung vorhanden");
            }

            else
            {
                MessageBox.Show("Verbindung wird geschlossen");
                con.Close();
            }

             
               


        }

        private void ButtonInsertIntoMitglied_Click(object sender, EventArgs e)
        {
            // Querystring
            string query = "INSERT INTO mitglied( mName, mVorname, mAdresseP, mAdressePnr, mAdresseG, mAdresseGnr, mGeburtsdatum, mBeschreibung, mLizenznr) VALUES "
               + " ('" + txtName.Text + "','" + txtVorname.Text + "','" + txtAdressePrivat.Text + "','" + txtHausnummerPriv.Text + "','" + txtAdresseGesch.Text + "','" + txtHausnummerGesch.Text + "','" + txtGeburtsdatum.Text + "','" + txtBeschreibung.Text + "','" + txtLizenz.Text + "' )";
            

            SqlCommand cmd = new SqlCommand(query, con);
            //cmd.ExecuteNonQuery();
                                 

            int intCheckQuery = cmd.ExecuteNonQuery();

            // Prueft ob Query erfolgreich abgesetzt werden konnte.
            if (intCheckQuery > 0)
            {
                MessageBox.Show("Datensatz erfolgreich hinzugefügt");
            }
            else
            {
                MessageBox.Show("Datensatz konnte nicht hinzugefügt werden");
            }

            // Verbindung zur Datenbank schließen
            con.Close();

            

        }

        public void btnSlcMtglieder_Click(object sender, EventArgs e)
            
        {
    // Select string
           // string selectquery = string.Format("SELECT *  FROM ort");	
            string selectquery = string.Format("SELECT mID, mName, mVorname, mAdresseP, mAdressePnr, mAdresseG, mAdresseGnr, mGeburtsdatum, mBeschreibung, mLizenznr  FROM mitglied");	

	 adapter = new SqlDataAdapter(selectquery, con);
 	SqlCommandBuilder sqlbuilder = new SqlCommandBuilder(adapter);

    datatbl.Clear();
		//DataSet ds = new DataSet();

		adapter.Fill(datatbl);
	   //adapter.Fill(ds, "mitglied");
		
	 	bindingSource = new BindingSource();
	 	bindingSource.DataSource = datatbl;
	 	
	 	// Render der Daten am schirm
		
	 	// Resize the DataGridView columns to fit the newly loaded content.
	 	//DG_ResultsGrid.AutoResizeColumns(
	//DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
	 	
	 	DG_ResultsGrid.DataSource = datatbl;
	 	//DG_ResultsGrid.DataSource = bindingSource;
	 	//DG_ResultsGrid.DataSource = ds.DefaultViewManager;
        }

        public void btnUpdateGrid_Click(object sender, EventArgs e)
        {

           
                        
           try
            {

                //adapter.Update(datatbl);
                adapter.Update(datatbl);


            }
            catch (Exception exceptionObj)
            {
                MessageBox.Show(exceptionObj.Message.ToString());
            }


        }

        public void btnDeleteMitglieder_Click(object sender, EventArgs e)
        {

            try
            {
           //ask user if wanting to delete
		  DialogResult dr=MessageBox.Show("Sind Sie sicher dass Sie den Datensatz löschen wollen? ", "Bitte Löschen bestätigen", MessageBoxButtons.YesNo, MessageBoxIcon.Question);	
		  if (dr ==DialogResult.Yes) //if 
		  {	
			  //datatbl.Clear();
              
			 int i=this.iRowIndex;// index ermitteln des ausgewählten datensatzes
			 datatbl.Rows[i].Delete(); //löschen
			 this.adapter.Update(datatbl); //Tabelle aktualisieren in DB
           
            }
            }
            catch (Exception exceptionObj)
            {
                MessageBox.Show(exceptionObj.Message.ToString());
            }

        }

        private void btnHandiErfassen_Click(object sender, EventArgs e)
        {
            handicap h1 = new handicap();
            h1.Show();

        }

        private void cmbprivat_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void cmbgesch_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void btnTurnierErfassen_Click_1(object sender, EventArgs e)
        {
            turnier h2 = new turnier();
            h2.Show();
        }
 



   
    }
}
